package com.water_work_form.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.water_work_form.entity.RecordDrugConsume;
import com.water_work_form.entity.RecordSynchronousComparison;
import com.baomidou.mybatisplus.extension.service.IService;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 记录——津滨水厂同步比对原始记录 服务类
 * </p>
 *
 * @author xuke
 * @since 2023-09-14
 */
public interface RecordSynchronousComparisonService extends IService<RecordSynchronousComparison> {

    /**
     * 记录——津滨水厂同步比对原始记录 项目查询（三个查询项+分页） 按照状态（status）、日期（record_date）、采样时间（sample_time）的先后顺序进行升序排序
     * @param startDate 日期（record_date）范围查询的开始日期数据，为空则不进行此项查询，否则返回record_date大于startDate的所有数据
     * @param endDate 日期（record_date）范围查询的结束日期数据，为空则不进行此项查询，否则返回record_date小于endDate的所有数据
     * @param samplingUserName 采样人姓名（sampling_user_name）列查询数据，为空则不进行此项查询，否则返回模糊查询后的所有结果
     * @param checkUserName 检测人姓名（check_user_name）列查询数据，为空则不进行此项查询，否则返回模糊查询后的所有结果
     * @param status 记录对应状态（status），为空则不进行此列查询，否则返回相应状态的所有数据
     * @param current 分页查询的当前页数
     * @param size 分页查询每页最大的数据量
     * @return 返回符合上述条件的所有数据
     */
    IPage<RecordSynchronousComparison> selectRecordSynchronousComparison(String startDate, String endDate, String samplingUserName, String checkUserName, String status,
                                                                         Integer current, Integer size);

    /**
     * 查询基础表数据
     * @param name 基础表form的name列对应查询数据，返回相符合的一项，并用"form"表示
     * @return 返回查询后的数据
     */
    Map<String,Object> selectBasicSynchronousComparison(String name);

    void downloadRecordSynchronousComparison(List<RecordSynchronousComparison> recordSynchronousComparisonList) throws IOException;
}
